package com.hxkj.service.article;

import com.alibaba.fastjson.JSONObject;
import com.hxkj.domain.po.Article;
import com.hxkj.domain.po.Column;
import com.hxkj.domain.po.ColumnTree;
import com.platform.common.domain.result.ResultDataStruct;
import com.platform.common.domain.result.ResultPageStruct;
import com.platform.common.domain.to.PageTo;
import java.util.List;
import java.util.Map;

/**
 * @InterfaceName ColumnService
 * @Description TODO
 * @Author Mr.zheng
 * @Date 2018/6/7 12:00
 * @Version 1.0
 */
public interface ColumnService {
    
    /**
    * @Description saveColumn 新增文章分类
    **/
    Column saveColumn(Column column) throws Exception;

    /**
    * @Description getColumnTreeList 获取文章分类树结构
    **/
    List<ColumnTree> getColumnTreeList(Column column)throws Exception;

    /**
    * @Description removerColumn 删除文章分类
    **/
    void removeColumn(Column column)throws Exception;

    /**
    * @Description modifyColumn 修改文章分类
    **/
    void modifyColumn(JSONObject jsonObject)throws Exception;

    /**
    * @Description modifySortNum
    **/
    void modifySortNum(Map<String, Object> map)throws Exception;

    /**
    * @Description getColumnList 获取文章分类列表
    **/
    ResultPageStruct<Article> getColumnList(Column column, PageTo pageParam);


    /**
     * @Description getShowColumnTreeList 获取文章分类树结构下拉框
     **/
    List<ColumnTree> getShowColumnTreeList(Column column);


    /**
     * @author zzx
     * @Description getChildren  获取文章分类父类下所有得子类
     * @return
     **/
     List<Column> getChildren(Column column);



    /**
     * @author yaosy
     * @Description getColumnList
     * @return
     **/
    List<Column> getColumnList(Column column)throws Exception;


    /**
     * 根据文章的分类获取整个分类结构
     * @param column
     * @return
     */
    List<Column> getTopParentColumn(Column column) throws Exception;
}
